package demo6;

public class Test11 {
    public static void main(String[] args)  {
        Thread t=new Thread(()->{
            //Thread 类内部, 有一个现成的标志位, 可以用来判定当前的循环是否要结束.
            // while循环中的条件就是：捕获此时线程是否终止
            while(!Thread.currentThread().isInterrupted()){
                System.out.println("线程开始");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // 此时若仅有printStackTrace() ，
                    // 这个线程是不会结束的，
                    // java中使用interrupt过后，isInterrupted()会初始化成false
                    // 1. 答应异常，然后继续执行
                    e.printStackTrace();
                    // 若加了break；此时线程就会停止
                    //2. 打印异常之后就会直接结束
                    // break;

                    //3. 在break前面加一些代码，会执行代码之后在结束线程
                    // 一些代码
                    //System.out.println("111");
                    //break;
                }

            }
        });
        t.start();
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("让线程停止");
        t.interrupt();// 这里终止Thread中的线程是通过引发sleep报异常然后被捕获而终止

    }
}
